1. Field of the Invention
This invention relates to the field of virtual machines and virtualization software. More particularly, the invention relates to a system and method for performing incremental and differential backups of files used by a virtual machine, where the files are stored in one or more virtual disk image files.
2. Description of the Related Art
A virtual machine (VM), also referred to as a virtual computer, is a software implementation of a machine (computer) that executes programs like a real machine. Virtualization provides the ability for multiple virtual machines to run together on the same physical computer. Each virtual machine may execute its own operating system and may appear to a user of the virtual machine to be the same as an independent physical computer. The software layer that executes on the physical computer and manages the various virtual machines is called a hypervisor or virtual machine host software. The virtual machine host software can run on bare hardware (called a Type 1 or native VM) or under control of an operating system (called a Type 2 or hosted VM).
A user may interact with a virtual machine similarly as if the user were interacting with a physical computer. For example, various software applications may be installed on the virtual machine, and the virtual machine may enable the user to launch the software applications, provide input to the software applications, and view output from the software applications identically as if they were executing on a physical computer.
A virtual machine typically maintains its own set of files, similarly as a physical computer would, such as operating system files, application program files, data files, etc. Whereas the files of a physical computer are typically stored on a hard disk, files of a virtual machine are often stored in one or more virtual disk image files. A virtual disk image file represents the contents and structure of a hard disk drive, e.g., by representing disk sectors. Sectors of the virtual disk image file are allocated as necessary for storing the files used by the virtual machine. In addition to the sector data, the virtual disk image file also includes various data structures for managing the sector data, such as a sector bitmap indicating which sectors are currently in use and store valid data. A virtual disk image file may be formatted according to a particular specification. Virtual disk image file specifications in common use include the Virtual Hard Disk (VHD) format and the Virtual Machine Disk Format (VMDK) format.